// 中间件（拦截器）
// 中间件（拦截器）就是在两个程序之间执行的程序
// 前端发送请求 -> 后端接收请求 -> 匹配路径 -> 执行对应的请求处理函数
// 前端发送请求 -> 后端接收请求 -> 中间件 -> 匹配路径 -> 中间件 -> 执行对应的请求处理函数

// 通过app.use()方法来使用中间件/插件
// app.use([path,] callback [, callback...])在express服务中使用插件/中间件
// path 请求时要匹配的路径，默认为 '/'
// callback 路径匹配后执行的回调函数

const express = require('express');
let app = express();

// 匹配请求路径开头为 '/'
app.use('/',(req,res,next)=>{// 中间件函数(全局中间件)
    // 获取参数
    let {code} = req.query;
    if (code === 'green') {
        next();// 放行 / 继续执行
    } else {
        res.send('很抱歉，没有绿码不能进入！');
    }
})

app.get('/a',(req,res,next)=>{// 中间件函数（局部中间件）
    // 获取参数
    let {jkm} = req.query;
    if (jkm === 'ok') {
        next();// 放行 / 继续执行
    } else {
        res.send('很抱歉，健康码不符合要求，不能进入小区！');
    }
},(req,res)=>{// 请求处理函数
    res.send('/a is ok');
})

app.get('/b',(req,res)=>{
    res.send('/b is ok');
})

app.post('/c',(req,res)=>{
    res.send('/c is ok');
})

app.post('/d',(req,res)=>{
    res.send('/d is ok');
})

app.listen(9090,()=>{
    console.log( '--------------ok---------------' );
})